"""
一个整数，它加上100和加上268后都是一个完全平方数，请问该数是多少？

> 在10000以内判断，将该数加上100后再开方，加上268后再开方，如果开方后的结果满足如下条件，即是结果。

假定该数是r
有:
a**2=r+100
b**2=r+268

则
（a+b）*(a-b)=168

"""

def guess_num():
    """
    此处的思路类似动态规划，但要简单很多
    :return:
    """
    acc_pool={}
    for i in range(1,100):
        acc=i**2
        acc_pool[acc]=i
        old_acc=acc-168
        if old_acc>0 and old_acc in acc_pool:
            print(f'a={i},b={acc_pool[old_acc]}')
            return acc-268

if __name__ == '__main__':
    res=guess_num()
    print(res)